package com.joolun.mall.entity;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.joolun.common.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 商品SPU-基本信息对象 spu_basic
 * 
 * @author www.joolun.com
 * @date 2025-05-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class SpuBasic extends Model<SpuBasic>
{
    private static final long serialVersionUID = 1L;

    /** SPU主键ID */
    private Long spuId;

//    /** SPU父ID（如：跟款时会记录） */
//    @Excel(name = "SPU父ID", readConverterExp = "如=：跟款时会记录")
//    private Long parentSpuId;

    /** SPU编码（即：款号） */
    @Excel(name = "SPU编码", readConverterExp = "即=：款号")
    private String spuCode;

    /**
     * spu编码集合
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    @TableField(exist = false)
    private List<String> spuCodes;

    /**
     * sku编码集合
     */
    @TableField(exist = false)
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private List<String> skuCodes;

    /** SPU名称（也是物料名称、商品名称） */
    @Excel(name = "SPU名称", readConverterExp = "也=是物料名称、商品名称")
    private String spuName;

//    /** SPU类型：0成品、1物料 */
//    @Excel(name = "SPU类型：0成品、1物料")
//    private Integer spuType;
//
//    /** 【作废】商品来源：1自有、2外采 */
//    @Excel(name = "【作废】商品来源：1自有、2外采")
//    private Integer spuSource;
//
//    /** 类目id（叶子节点-取自商品类目表inventory_category_new） */
//    @Excel(name = "类目id", readConverterExp = "叶=子节点-取自商品类目表inventory_category_new")
//    private Integer categoryId;
//
//    /** 【作废-目前兼容老查詢】分类id（取自商品类目表inventory_category_new） */
//    @Excel(name = "【作废-目前兼容老查詢】分类id", readConverterExp = "取=自商品类目表inventory_category_new")
//    private Integer classifyId;
//
//    /** 【作废-目前兼容老查詢】分类名称（取自商品类目表inventory_category_new） */
//    @Excel(name = "【作废-目前兼容老查詢】分类名称", readConverterExp = "取=自商品类目表inventory_category_new")
//    private String classifyName;
//
//    /** 【作废-目前兼容老查詢】大类id（取自商品类目表inventory_category_new） */
//    @Excel(name = "【作废-目前兼容老查詢】大类id", readConverterExp = "取=自商品类目表inventory_category_new")
//    private Integer bigClassId;
//
//    /** 【作废-目前兼容老查詢】大类名称（取自商品类目表inventory_category_new） */
//    @Excel(name = "【作废-目前兼容老查詢】大类名称", readConverterExp = "取=自商品类目表inventory_category_new")
//    private String bigClassName;
//
//    /** 【作废-目前兼容老查詢】中类id（取自商品类目表inventory_category_new） */
//    @Excel(name = "【作废-目前兼容老查詢】中类id", readConverterExp = "取=自商品类目表inventory_category_new")
//    private Integer middleClassId;
//
//    /** 【作废-目前兼容老查詢】中类名称（取自商品类目表inventory_category_new） */
//    @Excel(name = "【作废-目前兼容老查詢】中类名称", readConverterExp = "取=自商品类目表inventory_category_new")
//    private String middleClassName;
//
//    /** 【作废-目前兼容老查詢】小类id（取自商品类目表inventory_category_new） */
//    @Excel(name = "【作废-目前兼容老查詢】小类id", readConverterExp = "取=自商品类目表inventory_category_new")
//    private Integer smallClassId;
//
//    /** 【作废-目前兼容老查詢】小类名称（取自商品类目表inventory_category_new） */
//    @Excel(name = "【作废-目前兼容老查詢】小类名称", readConverterExp = "取=自商品类目表inventory_category_new")
//    private String smallClassName;

    /** 品牌id */
    @Excel(name = "品牌id")
    private Integer brandId;

    /** 品牌名称 */
    @Excel(name = "品牌名称")
    private String brandName;

    @JsonIgnore
    /** SPU状态：0启用、1停用） */
    @Excel(name = "SPU状态：0启用、1停用）")
    private Integer spuStatus;

    /** SPU图片（默认第1张是主图） */
    @Excel(name = "SPU图片", readConverterExp = "默=认第1张是主图")
    private String spuImg;

//    /** 【作废】审核状态（0 未审核 1已审核 2核价） */
//    @Excel(name = "【作废】审核状态", readConverterExp = "0=,未=审核,1=已审核,2=核价")
//    private Integer spuState;

//    /** 【作废】审核状态（0 未审核 1已审核 2核价） */
//    @Excel(name = "【作废】审核状态", readConverterExp = "0=,未=审核,1=已审核,2=核价")
//    private Integer auditState;

//    /** 【作废】授权状态：1.未确认  2.已授权  3.未授权 */
//    @Excel(name = "【作废】授权状态：1.未确认  2.已授权  3.未授权")
//    private Integer authorizationStatus;
//
//    /** 【作废】是否授权商商品：是（1）、否（2） */
//    @Excel(name = "【作废】是否授权商商品：是", readConverterExp = "1=")
//    private Integer licensedGoods;
//
//    /** 数据来源 0-EOP商品档案 1-WMS商品档案 */
//    @Excel(name = "数据来源 0-EOP商品档案 1-WMS商品档案")
//    private Integer dataSource;
//
//    /** 创建人 */
//    @Excel(name = "创建人")
//    private String createName;

//    /** 创建时间 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
//    private Date createDate;

//    /** 修改人 */
//    @Excel(name = "修改人")
//    private String updateName;
    @JsonIgnore
    /** 修改时间  */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间 ", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateDate;

//    /** 公司id */
//    @Excel(name = "公司id")
//    private Long companyId;
    @JsonIgnore
    /** 租户ID */
    @Excel(name = "租户ID")
    private Long tenantId=1L;

    @JsonIgnore
    /** 删除标记：0未删除、1已删除 */
    @Excel(name = "删除标记：0未删除、1已删除")
    private Integer isDelete;

    /**
     *  sku列表信息
     */
    @TableField(exist = false)
    private List<SkuBasic> skus;

}
